<?php

class informe extends CI_Model{
    var $id;
    var $t_auditoria_id;
    var $codigo;
    var $fecha;
    var $usuario_emite;
    var $conclusion;
    
    function __construct()
    {
        parent::__construct();
    }
    
    function registrar()
    {
        $this->id= $_POST['id'];  
        $this->t_auditoria_id = $_POST['auditoria_id'];
        $this->t_informe_estado_id=1;
        $this->codigo = $_POST['codigo'];
        $this->fecha= $_POST['fecha'];
        $this->conclusion = $_POST['conclusion'];
        $this->usuario_emite=$this->session->userdata('usuario');
        $this->anulado=0;
        $this->db->trans_start();
        $this->db->insert('t_informe', $this);  
        $this->db->trans_complete();
        
        $sql_audit="UPDATE t_auditoria SET t_estado_auditoria_id=5 WHERE id='".$_POST['auditoria_id']."'"; 
        $this->db->trans_start();
        $this->db->query($sql_audit);
        $this->db->trans_complete();
        
        if($this->db->trans_status() == FALSE)
        {
            show_error('Error en la insercion. CODIGO: ' . $this->db->_error_message());
        }else{
            header('Location: ' . base_url() . 'cauditoria/listartodos/0'); 
        }
    }
   
    function ultimoinforme()
    {

        $this->db->select('t_informe.id, t_informe.codigo');
        $this->db->from('t_informe');
        $this->db->order_by('t_informe.id','ASC');
        $query = $this->db->get();        
        
        return $query->first_row();
    }
    
    function listarTodos($id)
    {

        $this->db->select('t_informe.id,t_informe.id as idinforme, t_informe.codigo,t_personas.nombre as auditor, t_informe.fecha,t_informe_estado.nombre as estado, t_informe.t_auditoria_id, t_informe.t_auditoria_id as idauditoria, t_informe.conclusion, t_informe.t_informe_estado_id, t_informe.usuario_emite, t_entidad.nombre as entidad');
        $this->db->from('t_informe');
        $this->db->join('t_informe_estado', 't_informe.t_informe_estado_id=t_informe_estado.id');
        $this->db->join('t_auditoria', 't_informe.t_auditoria_id=t_auditoria.id');
        $this->db->join('t_entidad', 't_auditoria.t_entidad_id=t_entidad.id');
        $this->db->join('t_personas', 't_auditoria.t_personas_id=t_personas.id');
        $this->db->where('t_informe.anulado', 0);
        
        if ($id>0){
            $this->db->where('t_informe.t_auditoria_id', $id);
            $query = $this->db->get();        
            return $query->first_row();
        }else{
            $query = $this->db->get();        
            return $query->result();
        }
        
    }
    
    function consultar($id)
    {

        $this->db->select('t_entidad.id, t_entidad.nombre, t_tipo_entidad.nombre as tipo_entidad, t_entidad.t_tipo_auditoria_id, t_tipo_auditoria.nombre as tipo_auditoria');
        $this->db->from('t_entidad');
        $this->db->join('t_tipo_entidad', 't_entidad.t_tipo_entidad_id = t_tipo_entidad.id');
        $this->db->join('t_tipo_auditoria', 't_entidad.t_tipo_auditoria_id = t_tipo_auditoria.id');
        if ($tipo>0){
            $this->db->where('t_entidad.t_tipo_entidad_id', $tipo);
        }
        $this->db->where('t_entidad.eliminado', 0);
        $query = $this->db->get();        
        
        return $query->result();
    }
    
       function buscarResumen($mostrar,$todos,$entidad="",$desde="",$hasta="", $limite,$principio)
    { 
        $this->db->select('count(t_informe.id) as cantinformes,count(t_auditoria.id) as cantauditorias, t_entidad.nombre as entidad,month(t_auditoria.fecha_realizada) as mes,year(t_auditoria.fecha_realizada) as anio');
        $this->db->from('t_auditoria');
        $this->db->join('t_informe', 't_informe.t_auditoria_id=t_auditoria.id', 'left');
        $this->db->join('t_entidad', 't_auditoria.t_entidad_id=t_entidad.id');

           if($todos == 1)
           {
               $this->db->where('t_auditoria.eliminado', 0);
           }else
           {
               $this->db->where('t_auditoria.eliminado', 0);
               if($entidad!=""){
                   $this->db->like('t_entidad.nombre', rtrim($entidad),$limite,$principio);
                }
               if($desde!="" and $hasta!=""){
                    $this->db->where('t_auditoria.fecha_realizada >=',$desde,$limite,$principio);
                    $this->db->where('t_auditoria.fecha_realizada <=',$hasta,$limite,$principio);
               }
               
           }   
        $this->db->group_by(array("t_auditoria.t_entidad_id","month(t_auditoria.fecha_realizada)","year(t_auditoria.fecha_realizada)"));
        $this->db->order_by("year(t_auditoria.fecha_realizada)",'ASC');
        $this->db->order_by("month(t_auditoria.fecha_realizada)",'ASC');
        $resumen = $this->db->get();
        return $resumen->result();
        
    }
    
    function modificar($id){
       // if($id_tipo == $_POST['id']){
            
            $datos = array(
                'nombre'=> $_POST['nombre'],
                't_tipo_entidad_id'=> $_POST['t_tipo_entidad_id'],
                't_tipo_auditoria_id'=> $_POST['t_tipo_auditoria_id'],
            );
            
            $this->db->trans_start();
            $this->db->where('id',$id);
            $this->db->update('t_entidad',$datos);
            $this->db->trans_complete();

            if($this->db->trans_status() == FALSE)
            {
                show_error('Error en la insercion. CODIGO: ' . $this->db->_error_message());
            }else{
                header('Location: ' . base_url() . 'centidad/consultar'); 
            }      
        
    }
    
    function eliminar($id)
    {
        $this->db->trans_start();
        $this->db->where('id',$id);
        $datos = array('eliminado'=>1);
        $this->db->update('t_entidad',$datos);
        $this->db->trans_complete();
        if($this->db->trans_status() == FALSE)
        {
            show_error('Error en la insercion. CODIGO: ' . $this->db->_error_message());
        }else{
            header('Location: ' . base_url() . 'centidad/consultar'); 
        }
    }
    
    
    function listarResumen()
    {

        $this->db->select('count(t_informe.id) as cantinformes,count(t_auditoria.id) as cantauditorias, t_entidad.nombre as entidad, t_entidad.id as idEntidad, month(t_auditoria.fecha_realizada) as mes,year(t_auditoria.fecha_realizada) as anio');
        $this->db->from('t_auditoria');
        $this->db->join('t_informe', 't_informe.t_auditoria_id=t_auditoria.id', 'left');
        $this->db->join('t_entidad', 't_auditoria.t_entidad_id=t_entidad.id');
        $this->db->where('t_auditoria.eliminado',0);
        $this->db->where('t_auditoria.t_estado_auditoria_id',3);
        $this->db->group_by(array("t_auditoria.t_entidad_id","month(t_auditoria.fecha_realizada)","year(t_auditoria.fecha_realizada)"));
        $this->db->order_by("year(t_auditoria.fecha_realizada)",'ASC');
        $this->db->order_by("month(t_auditoria.fecha_realizada)",'ASC');

        
        $query = $this->db->get();        
        return $query->result();
        
        
    }

    function resumenInforme($idEntidad,$mes,$anio)
    {   
        $this->db->select('t_grupo_indicador.id AS idGrupoIndicador,t_grupo_indicador.nombre,SUM(t_repuesta.alerta * t_indicador.ponderacion) / SUM(t_indicador.ponderacion) * 100 AS porcentaje,t_auditoria.fecha_realizada');
        $this->db->from('t_indicador');
        $this->db->join('t_grupo_indicador','t_indicador.t_grupo_indicador_id=t_grupo_indicador.id');
        $this->db->join('t_auditoria_indicador','t_auditoria_indicador.t_indicador_id = t_indicador.id');
        $this->db->join('t_auditoria','t_auditoria_indicador.t_auditoria_id = t_auditoria.id');
        $this->db->join('t_repuesta','t_repuesta.id = t_auditoria_indicador.valor');
        $this->db->where('t_auditoria.t_entidad_id',$idEntidad);
        $this->db->where('t_auditoria.fecha_realizada >=',$anio.'/'.$mes.'/01');        
        $this->db->group_by('t_grupo_indicador.nombre');
        $this->db->group_by('t_auditoria.fecha_realizada');
        $this->db->group_by('t_grupo_indicador.id'); 
        $this->db->order_by("t_grupo_indicador.id",'ASC');
        $this->db->order_by("t_auditoria.fecha_realizada",'ASC');
        $query = $this->db->get();        
        return $query->result();
                
  }   
}


//         $this->db->where('t_grupo_indicador.id',1);
